Technote 1185

New ColorSync 3.0 APIs


ñ⁄éü

ÉVÉXÉeÉÄóvåè

ColorSync 3.0 ÇÃÉ`ÉFÉbÉN

ColorSync 3.0 ÉoÅ[ÉWÉáÉìèÓïÒÇÃéÊìæ

ÉVÉXÉeÉÄëSëÃÇ…ÇÌÇΩÇÈÉJÉâÅ[ä«óùê›íËÇÃóòóp

ïWèÄÉfÉoÉCÉXÇÃÉvÉçÉtÉ@ÉCÉãÇëŒè€ÇΔÇ∑ÇÈèàóù

ÉhÉLÉÖÉÅÉìÉgÇÃÉfÉtÉHÉãÉgÉvÉçÉtÉ@ÉCÉãÇëŒè€ÇΔÇ∑ÇÈèàóù

CMM ÇÃèâä˙ê›íËÇÃéÊìæ

ÉAÉvÉäÉPÅ[ÉVÉáÉìÇ©ÇÁÅuColorSyncÅvÉRÉìÉgÉçÅ[ÉãÉpÉlÉãÇÃãNìÆ

DZÇÃÉeÉNÉjÉJÉãÉmÅ[ÉgÇ≈ÇÕÅAÉAÉvÉäÉPÅ[ÉVÉáÉìÇ™ ColorSync 3.0 ÇÃêVã@î\ÇóòópÇ∑ÇÈÇΩÇflÇ…égópÇ≈Ç´ÇÈ API DžǬǢǃê‡ñæÇµÇ‹Ç∑ÅB


ÉVÉXÉeÉÄóvåè

ColorSync 3.0 ÇÕÅAMac OS 8.5 Ç‹ÇΩÇÕǪÇÍà»ç~Çé¿çsÇ∑ÇÈ PowerPC ÉRÉìÉsÉÖÅ[É^ÇïKóvÇΔǵNjÇ∑ÅB

ÉyÅ[ÉWÇÃêÊì™Ç…ñflÇÈ

ColorSync 3.0 ÇÃÉ`ÉFÉbÉN


ColorSync Manager ã§óLÉâÉCÉuÉâÉäÇ™ PowerPC É}ÉVÉìÇ…ÉçÅ[ÉhÇ≥ÇÍǃǢÇÈǩǫǧǩÇîªífÇ∑ÇÈÇ…ÇÕÅAgestaltColorMatchingAttr ÉZÉåÉNÉ^Çä‹Çfi Gestalt ä÷êîÇégópǵNjÇ∑ÅBâûìöÉpÉâÉÅÅ[É^Çà gestaltColorMatchingLibLoaded íËêîÇ…ÇÊǡǃé¶Ç≥ÇÍÇÈÉrÉbÉgÉtÉBÅ[ÉãÉh (ÉrÉbÉg 1) ÇÉeÉXÉgǵNjÇ∑ÅBÉrÉbÉgÇ™ÉZÉbÉgÇ≥ÇÍǃǢÇÈèÍçáÅAColorSync Manager ã§óLÉâÉCÉuÉâÉäÇÕÉçÅ[ÉhÇ≥ÇÍǃǢNjÇ∑ÅBéüÇÃÉTÉìÉvÉãÉRÅ[ÉhÇÕDZÇÃèàóùÇÃé¿çsï˚ñ@Çé¶ÇµÇƒÇ¢Ç‹Ç∑ÅBDZÇÃÉTÉìÉvÉãÉRÅ[ÉhÇ≈ÇÕÅAColorSyncAvailable Boolean ïœêîÇÃèâä˙ílÇΔǵǃ false Ç™ê›íËÇ≥ÇÍǃǢNjÇ∑ÅB


Boolean CheckIfColorSyncAvailableOnPPC (void)
 {
      Boolean ColorSyncAvailable = false;
      long gestaltResponse;
  
       if (Gestalt(gestaltColorMatchingAttr, &gestaltResponse) == noErr)
       {
           ColorSyncAvailable = gestaltResponse & (1 << gestaltColorMatchingLibLoaded);
       }
        
       return ColorSyncAvailable;
 }

Ç‹ÇΩÅAColorSync ä÷êîÇà CMGetColorSyncVersion (è⁄ç◊DžǬǢǃÇÕÅAÅuTechnote 1160: ColorSync 2.6 ÇÃâ¸ó«ì_ÅvÇéQèΔǵǃÇ≠ÇæÇ≥Ç¢) ÇégǡǃÅAColorSync Ç™ë∂ç›Ç∑ÇÈǩǫǧǩÇÉ`ÉFÉbÉNÇ∑ÇÈDZÇΔLJÇ≈Ç´Ç‹Ç∑ÅB

CMGetColorSyncVersion ä÷êîÇÕ ColorSync ÇÃÉoÅ[ÉWÉáÉìèÓïÒLJï‘ǵNjÇ∑ÅBéüÇ…ÅAColorSync 3.0 ÇÃë∂ç›ÇÉ`ÉFÉbÉNÇ∑ÇÈÉTÉìÉvÉãÉRÅ[ÉhÇé¶ÇµÇ‹Ç∑ÅB


#define  kColorSync3  0x00000300
  
 CMError err;
 UInt32 version;
  
 err = CMGetColorSyncVersion(&version);
 if (err == noErr)
 {
     if (version >= kColorSync3)
     {
        /* ColorSync 3 Ç™ÉCÉìÉXÉgÅ[ÉãÇ≥ÇÍǃǢÇÈ */
     }
 }
 else
 {
     /* ColorSync ÇÕë∂ç›ÇµÇ»Ç¢ */
 }

ÉyÅ[ÉWÇÃêÊì™Ç…ñflÇÈ

ColorSync 3.0 ÉoÅ[ÉWÉáÉìèÓïÒÇÃéÊìæ

ëOÇÃÉZÉNÉVÉáÉìÇ≈èqÇ◊ÇΩÇÊǧDžÅAColorSync Çà CMGetColorSyncVersion ä÷êîÇégópÇ∑ÇÈÇΔÅAColorSync ÇÃÉoÅ[ÉWÉáÉìèÓïÒÇéÊìæÇ∑ÇÈDZÇΔÇ™Ç≈Ç´Ç‹Ç∑ÅB

Ç‹ÇΩÅAgestaltColorMatchingVersion ÉZÉåÉNÉ^Çä‹Çfi Gestalt ä÷êîÇégǡǃ ColorSync ÇÃÉoÅ[ÉWÉáÉìèÓïÒÇéÊìæÇ∑ÇÈDZÇΔLJÇ≈Ç´Ç‹Ç∑ÅB

éüÇÃÉTÉìÉvÉãÉRÅ[ÉhÇèCê≥ǵǃégópÇ∑ÇÈÇΔÅAColorSync Manager Ç™ÉoÅ[ÉWÉáÉì 3.0 Ç≈džÇÈǩǫǧǩÇÉeÉXÉgÇ≈Ç´Ç‹Ç∑ÅBDZÇÃä÷êîÇ≈ÇÕÅABoolean ïœêî ColorSyncAvailable ÇÃèâä˙ílÇ™ false Ç…ê›íËÇ≥ÇÍǃǢǃÅAÉoÅ[ÉWÉáÉì 3.0 Ç‹ÇΩÇÕǪÇÍà»ç~Çà ColorSync Manager Ç™ÉCÉìÉXÉgÅ[ÉãÇ≥ÇÍǃǢÇÈèÍçáÇÕÅADZÇÃïœêîílÇÕ true Ç…ê›íËÇ≥ÇÍÇ‹Ç∑ÅB


#define  kColorSync3  0x00000300
  
 Boolean CheckForColorSyncVersion3(void)
 {
     Boolean ColorSyncAvailable = false;
     long version;
  
         if (Gestalt(gestaltColorMatchingVersion, &version) == noErr)
         { 
             if (version >= kColorSync3)
             {
                 ColorSyncAvailable = true;
             }
         }
  
     return ColorSyncAvailable;
 }

ÉyÅ[ÉWÇÃêÊì™Ç…ñflÇÈ

ÉVÉXÉeÉÄëSëÃÇ…ÇÌÇΩÇÈÉJÉâÅ[ä«óùê›íËÇÃóòóp

DZÇÃÉeÉNÉjÉJÉãÉmÅ[ÉgÇ≈ê‡ñæÇ∑ÇÈêVǵǢ API ÇΔÇΔLJDžégópÇ≥ÇÍÇÈÅuColorSync 3.0ÅvÉRÉìÉgÉçÅ[ÉãÉpÉlÉãÇÕÅAÉVÉXÉeÉÄëSëÃÇ…ÇÌÇΩÇÈÉJÉâÅ[ä«óùê›íËÇ÷ÇÃàÍä—ǵÇΩÉCÉìÉ^ÉtÉFÅ[ÉXÇíÒãüǵNjÇ∑ÅBDZÇÃÉCÉìÉ^ÉtÉFÅ[ÉXÇóòópÇ∑ÇÈDZÇΔÇ≈ÅAdžÇÁljÇÈÉåÉxÉãÇÃÉÜÅ[ÉUÇÃÉJÉâÅ[ä«óùëÄçÏÇå¸è„Ç≥ÇπÇÈDZÇΔÇ™Ç≈Ç´ÇÈÇæÇØÇ≈Ç»Ç≠ÅAìØéûÇ…ÅAÉÜÅ[ÉUå≈óLÇÃÉJÉâÅ[èâä˙ê›íËÇçsǧìΔé©ÇÃÉCÉìÉ^ÉtÉFÅ[ÉXÇçÏê¨Ç∑ÇÈéûä‘ÇêflñÒÇ∑ÇÈDZÇΔLJÇ≈Ç´Ç‹Ç∑ÅB

ColorSync 3.0 Ç™ìoèÍÇ∑ÇÈÇ‹Ç≈ÅAëΩÇ≠ÇÃÉGÉìÉhÉÜÅ[ÉUÇÕ ColorSync ÇÃë∂ç›ÇîFéØÇµÇƒÇ¢Ç»Ç¢Ç©ÅAColorSync ÇÃégÇ¢ï˚Ç™ÇÌÇ©ÇÁǻǢÇΔǢǧèÛãµÇ≈ǵÇΩÅBàÍï˚ÅAàÛç¸Ç‚ÉfÉUÉCÉìÇÃêÍñÂâΔÇÕ ColorSync ÇégǡǃäÓñ{ìIÇ»ÉJÉâÅ[ä«óùÇ…î∫ǧëΩÇ≠ÇÃñ‚ëËÇâåàǵǃǢNjǵÇΩÇ™ÅAÇ≥ÇÁÇ…åµñßÇ»ä«óùÇÉ}ÉjÉÖÉAÉãÇ≈êßå‰Ç≈Ç´ÇÍÇŒÇΔǢǧïKóvê´Çä¥Ç∂ǃǢNjǵÇΩÅBÉVÉXÉeÉÄëSëÃÇ…ÇÌÇΩÇÈàÍä—ǵÇΩÉCÉìÉ^ÉtÉFÅ[ÉXÇ™ë∂ç›ÇµÇ»Ç¢ÇΩÇflÅAǪÇÍǺÇÍÇÃÉAÉvÉäÉPÅ[ÉVÉáÉìÇ≈ÇÕÉfÉoÉCÉXÉvÉçÉtÉ@ÉCÉãÇëIëǵÇΩÇËÅAÉÜÅ[ÉUÇÃà”ê}Çï\åªÇ∑ÇÈÇΩÇflÇ…ìΔé©Çà UI Çï\é¶Ç∑ÇÈïKóvǙdžÇËNjǵÇΩÅBÇ‹ÇΩÅAÉXÉLÉÉÉìÉfÅ[É^Ç‚ÉvÉäÉìÉgÉfÅ[É^Ç…ÉJÉâÅ[ÉvÉçÉtÉ@ÉCÉãÇäÑÇËìñǃÇÈÇΩÇflÇÃàÍä—ǵÇΩÉCÉìÉ^ÉtÉFÅ[ÉXLJë∂ç›ÇµÇ‹ÇπÇÒÇ≈ǵÇΩÅB

éüÇÃÉZÉNÉVÉáÉìÇ≈ÅuColorSync 3.0ÅvÉRÉìÉgÉçÅ[ÉãÉpÉlÉãÇÃäTóvÇé¶ÇµÇ‹Ç∑ÅBǻǮè⁄ç◊DžǬǢǃÇÕÅuColorSync 3.0 DžǬǢǃÅv(ColorSync 3.0 ÇΔÇΔLJDžîzïzÇ≥ÇÍǃǢÇÈ) Ç≈ê‡ñæÇ≥ÇÍǃǢNjÇ∑ÅBÅuColorSync 3.0ÅvÉRÉìÉgÉçÅ[ÉãÉpÉlÉãÇÕÅAéüÇÃã@î\Çä‹ÇflÇΩÉJÉâÅ[ä«óùÉvÉçÉZÉXëSî Ç…ÇÌÇΩÇÈÇÊÇËçÇÇ¢ÉåÉxÉãÇÃêßå‰ã@î\ÇÉÜÅ[ÉUÇ…íÒãüǵNjÇ∑ÅB

  • ì¸óÕÉfÉoÉCÉXÅAï\é¶ÉfÉoÉCÉXÅAèoóÕÉfÉoÉCÉXÅAÇ®ÇÊÇ—çZê≥ÉfÉoÉCÉXÇ…ëŒÇ∑ÇÈÉfÉtÉHÉãÉgÇÃÉvÉçÉtÉ@ÉCÉãÇê›íËÇ∑ÇÈÅB
  • RGBÅACMYKÅAÉOÉåÉCÅALab ǻǫÅAÉhÉLÉÖÉÅÉìÉgÇÃÉJÉâÅ[ãÛä‘Ç…ëŒÇ∑ÇÈÉfÉtÉHÉãÉgÇÃÉvÉçÉtÉ@ÉCÉãÇê›íËÇ∑ÇÈ (Ç‹ÇΩÅAÉvÉçÉOÉâÉÄÇ…ÇÊÇË XYZ ãÛä‘Ç…ëŒÇ∑ÇÈÉfÉtÉHÉãÉgÇÃÉvÉçÉtÉ@ÉCÉãÇê›íËÇ∑ÇÈDZÇΔLJÇ≈Ç´ÇÈ)ÅB
  • CMM ÇÃèâä˙ê›íËÇëIëÇ∑ÇÈÅB
  • DZÇÍÇÁÇÃÉJÉâÅ[ê›íËÇ…ÅuÉèÅ[ÉNÉtÉçÅ[ÅvÇ…âûÇ∂ÇΩñºëOÇïtÇØÇƒï€ë∂ǵÅAïKóvÇ…âûÇ∂ǃÅAç≈ìKÇ»ÉJÉâÅ[ê›íËÇ…êÿÇËë÷ǶÇÈÅB

ColorSync ÇÃÉfÉtÉHÉãÉgÇÃê›íËÇ…ÇÊÇËÅAèâêSé“ÉÜÅ[ÉUÇ…ÇÕïKóvè\ï™Ç»ÉJÉâÅ[êßå‰ã@î\Ç™íÒãüÇ≥ÇÍÇ‹Ç∑ÅBÇ‹ÇΩÅAêÍñÂâΔÇÕÅAì¡íËÇÃÉfÉoÉCÉXÇ‹ÇΩÇÕÉCÉÅÅ[ÉWÇ…ëŒÇ∑ÇÈÉvÉçÉtÉ@ÉCÉãÇÃäÑÇËìñǃÅAê›íËÇÃï€ë∂ÅAçÏãΔñ⁄ìIÇ…âûÇ∂ÇΩê›íËÇÃêÿÇËë÷ǶÇóeà’Ç…çsǧDZÇΔÇ™Ç≈Ç´ÇÈÇÊǧDžǻÇËÇ‹Ç∑ÅBÇ≥ÇÁÇ…ÅAç≈êVÇÃÅuColorSyncÅvÉRÉìÉgÉçÅ[ÉãÉpÉlÉãÇÕìΔóßǵÇΩÉAÉvÉäÉPÅ[ÉVÉáÉìÇΔǵǃÉCÉìÉvÉäÉÅÉìÉgÇ≥ÇÍǃǢNjÇ∑ÅBDZÇÃÇΩÇflÅAëºÇÃÉAÉvÉäÉPÅ[ÉVÉáÉìÇ©ÇÁ CMLaunchControlPanel ä÷êîÇégǡǃÅuColorSyncÅvÉRÉìÉgÉçÅ[ÉãÉpÉlÉãÇãNìÆÇ∑ÇÈDZÇΔÇ™Ç≈Ç´Ç‹Ç∑ÅB

à»â∫ÇÃÉZÉNÉVÉáÉìÇ≈ÇÕÅAColorSync ÇÃêVã@î\Ç÷ÇÃÉAÉNÉZÉXÇ…égópÇ≈Ç´ÇÈ API DžǬǢǃê‡ñæÇµÇ‹Ç∑ÅB

ÉyÅ[ÉWÇÃêÊì™Ç…ñflÇÈ

ïWèÄÉfÉoÉCÉXÇÃÉvÉçÉtÉ@ÉCÉãÇëŒè€ÇΔÇ∑ÇÈèàóù

ColorSync 3.0 ÇÃì±ì¸Ç…ÇÊÇËÅAÉÜÅ[ÉUÇÕÅuColorSyncÅvÉRÉìÉgÉçÅ[ÉãÉpÉlÉãÇégǡǃÅAì¸óÕÉfÉoÉCÉXÅAèoóÕÉfÉoÉCÉXÅAï\é¶ÉfÉoÉCÉXÅAÇ®ÇÊÇ—çZê≥ÉfÉoÉCÉXÇÃÉVÉXÉeÉÄëSëÃÇ…ìKópÇ≥ÇÍÇÈÉvÉçÉtÉ@ÉCÉãÇìΔé©Ç…ê›íËÇ≈Ç´ÇÈÇÊǧDžǻÇËNjǵÇΩÅBéüÇÃê}ÇÕÅAÉfÉoÉCÉXÉvÉçÉtÉ@ÉCÉãÇÃÉfÉtÉHÉãÉgÇÃê›íËÇé¶ÇµÇƒÇ¢Ç‹Ç∑ÅBÉÜÅ[ÉUÇÕDZÇÍÇÁÇÃê›íËÇå¬ï Ç…ïœçXÇ∑ÇÈDZÇΔLJÇ≈Ç´Ç‹Ç∑Ç™ÅAêVǵǢÉèÅ[ÉNÉtÉçÅ[ (ÉfÉoÉCÉXÉvÉçÉtÉ@ÉCÉãÅAÉhÉLÉÖÉÅÉìÉgÉvÉçÉtÉ@ÉCÉãÅAÇ®ÇÊÇ— CMM ÇÃèâä˙ê›íËÇéwíËǵNjÇ∑) Ç…êÿÇËë÷ǶÇÈDZÇΔÇ≈ëSëÃÇΔǵǃïœçXÇ∑ÇÈDZÇΔLJÇ≈Ç´Ç‹Ç∑ÅBÉèÅ[ÉNÉtÉçÅ[ÇÃè⁄ç◊DžǬǢǃÇÕÅAÅuColorSync 3.0 DžǬǢǃÅvÇéQèΔǵǃÇ≠ÇæÇ≥Ç¢ÅB

Å@

gif.1

ê} 1Å@ïWèÄÉfÉoÉCÉXÇÃÉvÉçÉtÉ@ÉCÉã

ÉAÉvÉäÉPÅ[ÉVÉáÉìÇ≈ CMGetDefaultProfileByUse ä÷êîÇégópÇ∑ÇÈÇΔÅAÉfÉoÉCÉXÉvÉçÉtÉ@ÉCÉãÇÃÉÜÅ[ÉUèâä˙ê›íËÇéÊìæÇ∑ÇÈDZÇΔÇ™Ç≈Ç´Ç‹Ç∑ÅBÇ‹ÇΩÅACMSetDefaultProfileByUse ä÷êîÇégǡǃÅAÉfÉoÉCÉXÉvÉçÉtÉ@ÉCÉãÇ…ílÇê›íËÇ∑ÇÈDZÇΔLJÇ≈Ç´Ç‹Ç∑ÅBDZÇÍÇÁÇÃä÷êîÇåƒÇ—èoÇ∑ÇΔÇ´ÇÕÅAéüÇà enum Ç…ä‹Ç‹ÇÍÇÈÇ¢Ç∏ÇÍÇ©ÇÃíËêîÇégópǵǃÅAéÊìæÇ‹ÇΩÇÕê›íËÇ∑ÇÈÉfÉoÉCÉXÉvÉçÉtÉ@ÉCÉãÇÃÉ^ÉCÉvÇéwíËǵNjÇ∑ÅB


enum {
     cmInputUse   = 'inpt',
     cmOutputUse  = 'outp',
     cmDisplayUse = 'dply',
     cmProofUse   = 'pruf'
};

cmInputUse

ì¸óÕÉfÉoÉCÉXÉvÉçÉtÉ@ÉCÉãÇÃèâä˙ê›íËÇéwíËÇ∑ÇÈÅB

cmOutputUse

èoóÕÉfÉoÉCÉXÉvÉçÉtÉ@ÉCÉãÇÃèâä˙ê›íËÇéwíËÇ∑ÇÈÅB

cmDisplayUse

ï\é¶ÉfÉoÉCÉXÉvÉçÉtÉ@ÉCÉãÇÃèâä˙ê›íËÇéwíËÇ∑ÇÈÅB

cmProofUse

çZê≥ÉfÉoÉCÉXÉvÉçÉtÉ@ÉCÉãÇÃèâä˙ê›íËÇéwíËÇ∑ÇÈÅB


CMGetDefaultProfileByUse ÇÕ ColorSync 3.0 Ç©ÇÁégópÇ≈Ç´ÇÈÇÊǧDžǻǡÇΩä÷êîÇ≈Ç∑ÅBDZÇÃä÷êîÇÕéüÇÃÇÊǧDžíËã`Ç≥ÇÍǃǢNjÇ∑ÅB


pascal CMError CMGetDefaultProfileByUse (
         OSType use,
         CMProfileRef * prof);

use - OSType å^ÇÃílÅBëOèqǵÇΩíËêîÇÃÇ¢Ç∏ÇÍÇ©ÇìnǵǃÅAÉvÉçÉtÉ@ÉCÉãÇéÊìæÇ∑ÇÈÉfÉoÉCÉXÇÃÉ^ÉCÉvÇéwíËǵNjÇ∑ÅB

prof - CMProfileRef å^ÇÃÉvÉçÉtÉ@ÉCÉãéQèΔÇ÷ÇÃÉ|ÉCÉìÉ^ (è⁄ç◊DžǬǢǃÇÕÅAÅuManaging Color With ColorSyncÅvÇéQèΔǵǃÇ≠ÇæÇ≥Ç¢)ÅBä÷êîÇ™ílÇï‘Ç∑ÇΔÇ´ÅADZÇÃéQèΔÇÕ use Ç…ÇÊǡǃéwíËÇ≥ÇÍÇΩÉfÉoÉCÉXÇ…ëŒâûÇ∑ÇÈÉvÉçÉtÉ@ÉCÉãÇéQèΔǵNjÇ∑ÅBÉAÉvÉäÉPÅ[ÉVÉáÉìǙDZÇÃéQèΔÇégÇ¢èIÇÌÇ¡ÇΩÇΔÇ´ÇÕÅACMCloseProfile ä÷êîÇåƒÇ—èoǵǃéQèΔÇÉNÉçÅ[ÉYÇ∑ÇÈïKóvǙdžÇËÇ‹Ç∑ÅB

function result - CMError å^ÇÃåãâ ÉRÅ[ÉhÅBéÊÇËǧÇÈílDžǬǢǃÇÕÅAÅuManaging Color With ColorSyncÅvÇéQèΔǵǃÇ≠ÇæÇ≥Ç¢ÅB

CMSetDefaultProfileByUse LJ ColorSync 3.0 Ç©ÇÁégópÇ≈Ç´ÇÈÇÊǧDžǻǡÇΩä÷êîÇ≈Ç∑ÅBDZÇÃä÷êîÇÕéüÇÃÇÊǧDžíËã`Ç≥ÇÍǃǢNjÇ∑ÅB


pascal CMError CMSetDefaultProfileByUse (
        OSType use,
        CMProfileRef prof);

use - OSType å^ÇÃílÅBëOèqǵÇΩíËêîÇÃÇ¢Ç∏ÇÍÇ©ÇìnǵǃÅAÉvÉçÉtÉ@ÉCÉãÇê›íËÇ∑ÇÈÉfÉoÉCÉXÇÃÉ^ÉCÉvÇéwíËǵNjÇ∑ÅB

prof - CMProfileRef å^ÇÃÉvÉçÉtÉ@ÉCÉãéQèΔ (è⁄ç◊DžǬǢǃÇÕÅAÅuManaging Color With ColorSyncÅvÇéQèΔǵǃÇ≠ÇæÇ≥Ç¢)ÅBColorSync ÇÕÅAuse ÉpÉâÉÅÅ[É^Ç…ÇÊǡǃéwíËÇ≥ÇÍǃǢÇÈÉfÉoÉCÉXÇÃÉvÉçÉtÉ@ÉCÉãÇ…ÅADZÇÃéQèΔÇ…ÇÊǡǃéwíËÇ≥ÇÍÇÈÉvÉçÉtÉ@ÉCÉãÇê›íËǵNjÇ∑ÅB

function result - CMError å^ÇÃåãâ ÉRÅ[ÉhÅBéÊÇËǧÇÈílDžǬǢǃÇÕÅAÅuManaging Color With ColorSyncÅvÇéQèΔǵǃÇ≠ÇæÇ≥Ç¢ÅB

ÉyÅ[ÉWÇÃêÊì™Ç…ñflÇÈ

ÉhÉLÉÖÉÅÉìÉgÇÃÉfÉtÉHÉãÉgÉvÉçÉtÉ@ÉCÉãÇëŒè€ÇΔÇ∑ÇÈèàóù

ColorSync 3.0 ÇÃì±ì¸Ç…ÇÊÇËÅAÉÜÅ[ÉUÇÕÅuColorSyncÅvÉRÉìÉgÉçÅ[ÉãÉpÉlÉãÇégǡǃÅARGBÅACMYKÅAÉOÉåÉCÅAÇ®ÇÊÇ— Lab ÉJÉâÅ[ãÛä‘Ç…ëŒÇ∑ÇÈÉfÉtÉHÉãÉgÇÃÉhÉLÉÖÉÅÉìÉgÉvÉçÉtÉ@ÉCÉãÇéwíËÇ≈Ç´ÇÈÇÊǧDžǻÇËNjǵÇΩ (ColorSync ÇÃà»ëOÇÃÉoÅ[ÉWÉáÉìÇ≈ÇÕÅARGB Ç®ÇÊÇ— CMYK ãÛä‘Ç…ëŒÇ∑ÇÈÉvÉçÉtÉ@ÉCÉãǵǩê›íËÇ≈Ç´Ç‹ÇπÇÒÇ≈ǵÇΩ)ÅBÉAÉvÉäÉPÅ[ÉVÉáÉìÇ≈ÇÕÅAÉtÉ@ÉCÉãÇÉIÅ[ÉvÉìÇ∑ÇÈÇΔÇ´ÇΔêVǵǢÉtÉ@ÉCÉãÇçÏê¨Ç∑ÇÈÇΔǴDžDZÇÍÇÁÇÃÉvÉçÉtÉ@ÉCÉãÇégópÇ≈Ç´Ç‹Ç∑ÅBÇΩÇΔǶnjÅAdžÇÈÉhÉLÉÖÉÅÉìÉgÇ…ÉvÉçÉtÉ@ÉCÉãÇ™ñÑÇflçûÇ‹ÇÍǃǢǻǢ RGB ÉCÉÅÅ[ÉWÇ™ä‹Ç‹ÇÍǃǢÇÈèÍçáÇÕÅARGB ÇÃÉfÉtÉHÉãÉgÉhÉLÉÖÉÅÉìÉgÉvÉçÉtÉ@ÉCÉãÇégópÇ∑ÇÈDZÇΔÇ™Ç≈Ç´Ç‹Ç∑ÅB

ìØólÇ…ÅAÉÜÅ[ÉUÇ™êVǵǢ RGB ÉhÉLÉÖÉÅÉìÉgÇçÏê¨Ç∑ÇÈÇΔǴDžLJÅAìØàÍÇà RGB ÉfÉtÉHÉãÉgÉvÉçÉtÉ@ÉCÉãÅAdžÇÈÇ¢ÇÕï\é¶ÉfÉoÉCÉXÉvÉçÉtÉ@ÉCÉãÇéùǬÉJÉâÅ[ãÛä‘ÇÃíÜÇ≈ÉCÉÅÅ[ÉWÇçÏê¨Ç∑ÇÈDZÇΔÇ™Ç≈Ç´Ç‹Ç∑ÅB

éüÇÃê}ÇÕÅAÉhÉLÉÖÉÅÉìÉgÉJÉâÅ[ãÛä‘ÉvÉçÉtÉ@ÉCÉãÇÃÉfÉtÉHÉãÉgÇÃê›íËÇé¶ÇµÇƒÇ¢Ç‹Ç∑ÅBÉÜÅ[ÉUÇÕDZÇÍÇÁÇÃê›íËÇå¬ï Ç…ïœçXÇ∑ÇÈDZÇΔLJÇ≈Ç´Ç‹Ç∑Ç™ÅAêVǵǢÉèÅ[ÉNÉtÉçÅ[ (ÉfÉoÉCÉXÉvÉçÉtÉ@ÉCÉãÅAÉhÉLÉÖÉÅÉìÉgÉvÉçÉtÉ@ÉCÉãÅAÇ®ÇÊÇ— CMM ÇÃèâä˙ê›íËÇéwíËǵNjÇ∑) Ç…êÿÇËë÷ǶÇÈDZÇΔÇ≈ëSëÃÇΔǵǃïœçXÇ∑ÇÈDZÇΔLJÇ≈Ç´Ç‹Ç∑ÅBÉèÅ[ÉNÉtÉçÅ[ÇÃè⁄ç◊DžǬǢǃÇÕÅAÅuColorSync 3.0 DžǬǢǃÅvÇéQèΔǵǃÇ≠ÇæÇ≥Ç¢ÅB

gif.2

ê} 2Å@ÉfÉtÉHÉãÉgÉvÉçÉtÉ@ÉCÉã

ÉAÉvÉäÉPÅ[ÉVÉáÉìÇ≈ CMGetDefaultProfileBySpace Ç‹ÇΩÇÕ CMSetDefaultProfileBySpace ÇégópÇ∑ÇÈÇΔÅAÇ≥NjǥNjǻÉJÉâÅ[ãÛä‘Ç…ëŒÇ∑ÇÈÉfÉtÉHÉãÉgÇÃÉhÉLÉÖÉÅÉìÉgÉvÉçÉtÉ@ÉCÉãÇéÊìæÇ‹ÇΩÇÕê›íËÇ∑ÇÈDZÇΔÇ™Ç≈Ç´Ç‹Ç∑ÅBÉfÉtÉHÉãÉgÇÃÉvÉçÉtÉ@ÉCÉãÇéÊìæÇ‹ÇΩÇÕê›íËÇ∑ÇÈÉJÉâÅ[ãÛä‘ÇéwíËÇ∑ÇÈÇ…ÇÕÅAà»â∫Ç…é¶Ç∑íËêîÇÃÇ¢Ç∏ÇÍÇ©ÇégópǵNjÇ∑ÅBǻǮÅAÉÜÅ[ÉUÇ™ XYZ ãÛä‘Ç…ëŒÇ∑ÇÈÉfÉtÉHÉãÉgÉvÉçÉtÉ@ÉCÉãÇê›íËÇ∑ÇÈDZÇΔÇÕÇ≈Ç´Ç‹ÇπÇÒÇ™ÅAÉfÉxÉçÉbÉpÇÕÉAÉvÉäÉPÅ[ÉVÉáÉìì‡Ç≈DZÇÃê›íËÇçsǧDZÇΔÇ™Ç≈Ç´Ç‹Ç∑ÅB


enum {
    cmXYZData  = 'XYZ ',
    cmLabData  = 'Lab ',
    cmRGBData  = 'RGB ',
    cmGrayData = 'GRAY',
    cmCMYKData = 'CMYK'
};

cmXYZData

XYZ ãÛä‘ÇéwíËÇ∑ÇÈÅB

cmLabData

LAB ãÛä‘ÇéwíËÇ∑ÇÈÅB

cmRGBData

cmRGBData RGB ãÛä‘ÇéwíËÇ∑ÇÈÅB

cmGrayData

cmGrayData ÉOÉåÉCãÛä‘ÇéwíËÇ∑ÇÈÅB

cmCMYKData

cmCMYKData CMYK ãÛä‘ÇéwíËÇ∑ÇÈÅB


CMGetDefaultProfileBySpace ä÷êîÇÕéüÇÃÇÊǧDžíËã`Ç≥ÇÍǃǢNjÇ∑ÅB

pascal CMError CMGetDefaultProfileBySpace (
        OSType dataColorSpace,
        CMProfileRef * prof);

dataColorSpace - OSType å^ÇÃílÅBëOèqǵÇΩíËêîÇÃÇ¢Ç∏ÇÍÇ©ÇìnǵǃÅAÉfÉtÉHÉãÉgÇÃÉhÉLÉÖÉÅÉìÉgÉvÉçÉtÉ@ÉCÉãÇéÊìæÇ∑ÇÈÉJÉâÅ[ãÛä‘ÇéwíËǵNjÇ∑ÅBColorSync 3.0 à»ëOÇÕÅAÉOÉåÉCÉJÉâÅ[ãÛä‘Ç…ëŒÇ∑ÇÈÉfÉtÉHÉãÉgÇÕë∂ç›ÇµÇ‹ÇπÇÒÇ≈ǵÇΩÅB

prof - CMProfileRef å^ÇÃÉvÉçÉtÉ@ÉCÉãéQèΔÇ÷ÇÃÉ|ÉCÉìÉ^ (è⁄ç◊DžǬǢǃÇÕÅAÅuManaging Color With ColorSyncÅvÇéQèΔǵǃÇ≠ÇæÇ≥Ç¢)ÅBä÷êîÇ™ílÇï‘Ç∑ÇΔÇ´ÅADZÇÃéQèΔÇÕ dataColorSpace Ç…ÇÊǡǃéwíËÇ≥ÇÍÇΩÉJÉâÅ[ãÛä‘Ç…ëŒâûÇ∑ÇÈÉfÉtÉHÉãÉgÉhÉLÉÖÉÅÉìÉgÉvÉçÉtÉ@ÉCÉãÇéQèΔǵNjÇ∑ÅBÉAÉvÉäÉPÅ[ÉVÉáÉìǙDZÇÃéQèΔÇégÇ¢èIÇÌÇ¡ÇΩÇΔÇ´ÇÕÅACMCloseProfile ä÷êîÇåƒÇ—èoǵǃéQèΔÇÉNÉçÅ[ÉYÇ∑ÇÈïKóvǙdžÇËÇ‹Ç∑ÅB

function result - CMError å^ÇÃåãâ ÉRÅ[ÉhÅBéÊÇËǧÇÈílDžǬǢǃÇÕÅAÅuManaging Color With ColorSyncÅvÇéQèΔǵǃÇ≠ÇæÇ≥Ç¢ÅB

CMSetDefaultProfileBySpace ä÷êîÇÕéüÇÃÇÊǧDžíËã`Ç≥ÇÍǃǢNjÇ∑ÅB


pascal CMError CMSetDefaultProfileBySpace (
        OSType dataColorSpace,
        CMProfileRef prof);

dataColorSpace - OSType å^ÇÃílÅBëOèqǵÇΩíËêîÇÃÇ¢Ç∏ÇÍÇ©ÇìnǵǃÅAÉfÉtÉHÉãÉgÇÃÉhÉLÉÖÉÅÉìÉgÉvÉçÉtÉ@ÉCÉãÇê›íËÇ∑ÇÈÉJÉâÅ[ãÛä‘ÇéwíËǵNjÇ∑ÅBColorSync 3.0 à»ëOÇÕÅAÉOÉåÉCÉJÉâÅ[ãÛä‘Ç…ëŒÇ∑ÇÈÉfÉtÉHÉãÉgÇÕë∂ç›ÇµÇ‹ÇπÇÒÇ≈ǵÇΩÅB

prof - CMProfileRef å^ÇÃÉvÉçÉtÉ@ÉCÉãéQèΔ (è⁄ç◊DžǬǢǃÇÕÅAÅuManaging Color With ColorSyncÅvÇéQèΔǵǃÇ≠ÇæÇ≥Ç¢)ÅBColorSync ÇÕÅAdataColorSpace ÉpÉâÉÅÅ[É^Ç…ÇÊǡǃéwíËÇ≥ÇÍǃǢÇÈÉJÉâÅ[ãÛä‘ÇÃÉfÉtÉHÉãÉgÉhÉLÉÖÉÅÉìÉgÉvÉçÉtÉ@ÉCÉãÇ…ÅADZÇÃéQèΔÇ…ÇÊǡǃéwíËÇ≥ÇÍÇÈÉvÉçÉtÉ@ÉCÉãÇê›íËǵNjÇ∑ÅB

function result - CMError å^ÇÃåãâ ÉRÅ[ÉhÅBéÊÇËǧÇÈílDžǬǢǃÇÕÅAÅuManaging Color With ColorSyncÅvÇéQèΔǵǃÇ≠ÇæÇ≥Ç¢ÅB

CMM ÇÃèâä˙ê›íËÇÃéÊìæ

ColorSync 2.5 ÇÃì±ì¸à»ç~ÅAÉÜÅ[ÉUÇÕÅuColorSyncÅvÉRÉìÉgÉçÅ[ÉãÉpÉlÉãÇégǡǃÅACMM ÇÃèâä˙ê›íËÇê›íËÇ≈Ç´ÇÈÇÊǧDžǻÇËÅAÉAÉvÉäÉPÅ[ÉVÉáÉìÇ≈ÇÕ CMGetPreferredCMM ä÷êîÇåƒÇ—èoǵǃÅACMM ÇÃèâä˙ê›íËÇéÊìæÇ≈Ç´ÇÈÇÊǧDžǻÇËNjǵÇΩÅBDZÇÃä÷êîÇÕéüÇÃÇÊǧDžíËã`Ç≥ÇÍǃǢNjÇ∑ÅB


pascal CMError CMGetPreferredCMM (
        OSType * cmmType,
        Boolean * preferredCMMnotfound);

cmmType - OSType Ç÷ÇÃÉ|ÉCÉìÉ^ÅBä÷êîÇ™ílÇï‘Ç∑ÇΔÇ´ÅACMM ÇÃèâä˙ê›íËÇÃÉRÉìÉ|Å[ÉlÉìÉgÉTÉuÉ^ÉCÉvÇ™ï‘Ç≥ÇÍÇ‹Ç∑ÅBÇΩÇΔǶnjÅAColorSync ÇÃÉfÉtÉHÉãÉg CMM Ç…ëŒÇ∑ÇÈÉTÉuÉ^ÉCÉvÇÕ 'appl' Ç≈ÅAKodak CMM Ç…ëŒÇ∑ÇÈÉTÉuÉ^ÉCÉvÇÕ 'KCMS' Ç≈Ç∑ÅBñflÇËílÇà NULL ÇÕÅAÅuColorSyncÅvÉRÉìÉgÉçÅ[ÉãÉpÉlÉãÇ≈ÅuCMM ÇÃèâä˙ê›íËÅvÇ…Åué©ìÆÅvÇ™ê›íËÇ≥ÇÍǃǢÇÈDZÇΔÇé¶ÇµÇ‹Ç∑ÅBDZÇÃèÍçáÅAColorSync ÇÕÅuManaging Color With ColorSyncÅvÇ≈ê‡ñæÇ≥ÇÍǃǢÇÈÇ¢Ç≠ÇÁÇ©ï°éGÇ»ÉAÉãÉSÉäÉYÉÄDžǵÇΩǙǡǃ CMM ÇÃèâä˙ê›íËÇåàíËǵNjÇ∑ÅB

preferredCMMnotfound - CMM ÇÃèâä˙ê›íËÇ™ë∂ç›Ç∑ÇÈǩǫǧǩÇé¶Ç∑ Boolean ÉtÉâÉOÇ÷ÇÃÉ|ÉCÉìÉ^ÅBä÷êîÇ™ílÇï‘Ç∑ÇΔÇ´ÅACMM Ç™ë∂ç›ÇµÇ»ÇØÇÍnjDZÇÃílÇÕ true Ç…Ç»ÇËÅAë∂ç›Ç∑ÇÍÇŒ false Ç…Ç»ÇËÇ‹Ç∑ÅB

function result - CMError å^ÇÃåãâ ÉRÅ[ÉhÅBéÊÇËǧÇÈílDžǬǢǃÇÕÅAÅuManaging Color With ColorSyncÅvÇéQèΔǵǃÇ≠ÇæÇ≥Ç¢ÅB

ÉyÅ[ÉWÇÃêÊì™Ç…ñflÇÈ

ÉAÉvÉäÉPÅ[ÉVÉáÉìÇ©ÇÁÅuColorSyncÅvÉRÉìÉgÉçÅ[ÉãÉpÉlÉãÇÃãNìÆ



íçà”:
DZDZÇ≈ê‡ñæÇ∑ÇÈ CMLaunchControlPanel ÉãÅ[É`ÉìÇÕÅAColorSync 3.0 Ç≈ÇÕìKêÿÇ…ìÆçÏǵNjÇπÇÒÅBDZÇÃñ‚ëËÇÕ ColorSync ÇÃéüÇÃÉäÉäÅ[ÉXÇ≈èCê≥Ç≥ÇÍÇÈó\íËÇ≈Ç∑ÅB


ColorSync 3.0 ÇÃì±ì¸Ç…ÇÊÇËÅAÉAÉvÉäÉPÅ[ÉVÉáÉìÇ≈ÇÕÅuColorSyncÅvÉRÉìÉgÉçÅ[ÉãÉpÉlÉãÇãNìÆÇµÇƒÅAÉfÉoÉCÉXÇΔÉhÉLÉÖÉÅÉìÉgÇÃÉfÉtÉHÉãÉgÉvÉçÉtÉ@ÉCÉãÇ‚ CMM ÇÃèâä˙ê›íËÇä‹ÇflÇΩÉJÉâÅ[ëIëÇóvãÅÇ≈Ç´ÇÈÇÊǧDžǻÇËNjǵÇΩÅBÇ‹ÇΩÅAÉÜÅ[ÉUÇÕÅAÉèÅ[ÉNÉtÉçÅ[ (è⁄ç◊DžǬǢǃÇÕÅAÅuColorSync 3.0 DžǬǢǃÅvÇéQèΔǵǃÇ≠ÇæÇ≥Ç¢) ÇΔåƒÇŒÇÍÇÈñºëOÇÃïtÇ¢ÇΩÉJÉâÅ[ê›íËÇÃÉRÉåÉNÉVÉáÉìÇêÿÇËë÷ǶǃégópÇ≈Ç´ÇÈÇÊǧDžǻÇËNjǵÇΩÅB

DZÇÍÇ‹Ç≈ëΩÇ≠ÇÃÉAÉvÉäÉPÅ[ÉVÉáÉìÇÕìΔé©ÇÃÉÜÅ[ÉUÉCÉìÉ^ÉtÉFÅ[ÉX (UI) ÇÃàÍïîÇΔǵǃÅAÉJÉâÅ[ä«óùÇÃèâä˙ê›íËÇ…ëŒÇ∑ÇÈåàíËÇé©ï™é©êgÇ≈çsǡǃǴNjǵÇΩÅBÉAÉvÉäÉPÅ[ÉVÉáÉìÇÃì‡ïîÇ©ÇÁÅuColorSyncÅvÉRÉìÉgÉçÅ[ÉãÉpÉlÉãÇãNìÆÇ≈Ç´ÇÈÇΩÇflÅAç°å„ÇÕÅADZÇÃÇÊǧǻìΔé©Çà UI Ç®ÇÊÇ—ÉRÅ[ÉhÇÃàÍïîÇ‹ÇΩÇÕëSïîÇçÌèúÇ≈Ç´ÇÈÇÊǧDžǻÇËÇ‹Ç∑ÅBÇ‹ÇΩÅAÉÜÅ[ÉUÇ…ÇÕÅAColorSync Ç…ÇÊǡǃíÒãüÇ≥ÇÍÇÈïWèÄìIÇ»ÉJÉâÅ[ä«óù UI Çï\é¶Ç≈Ç´ÇÈÇÊǧDžǻÇËÇ‹Ç∑ÅB

ÉAÉvÉäÉPÅ[ÉVÉáÉìÇ©ÇÁÅuColorSyncÅvÉRÉìÉgÉçÅ[ÉãÉpÉlÉãÇãNìÆÇ∑ÇÈÇ…ÇÕÅAéüÇÃä÷êîÇåƒÇ—èoǵNjÇ∑ÅB


pascal CMError CMLaunchControlPanel (UInt32 flags);

flags - DZÇÃÉpÉâÉÅÅ[É^Ç…ÇÕílÇΔǵǃ 0 ÇìnÇ∑ïKóvǙdžÇËÇ‹Ç∑ÅBColorSync ÇÃè´óàÇÃÉoÅ[ÉWÉáÉìÇ≈ÇÕÅAÅuColorSyncÅvÉRÉìÉgÉçÅ[ÉãÉpÉlÉãÇÃãNìÆï˚ñ@ÇéwíËÇ∑ÇÈÉtÉâÉOÉpÉâÉÅÅ[É^Ç…ëŒâûǵÇΩíËêîÇ™íËã`Ç≥ÇÍÇÈó\íËÇ≈Ç∑ÅB

function result - CMError å^ÇÃåãâ ÉRÅ[ÉhÅBéÊÇËǧÇÈílDžǬǢǃÇÕÅA ÅuManaging Color With ColorSyncÅvÇéQèΔǵǃÇ≠ÇæÇ≥Ç¢ÅB

ÉAÉvÉäÉPÅ[ÉVÉáÉìÇ™ CMLaunchControlPanel ÉãÅ[É`ÉìÇåƒÇ—èoÇ∑ÇΔÇ´ÅAÉÜÅ[ÉUÇ…ÇÊǡǃâ¡Ç¶ÇÁÇÍÇΩïœçXÇÕÅuColorSyncÅvÉRÉìÉgÉçÅ[ÉãÉpÉlÉãÇÉNÉçÅ[ÉYÇ∑ÇÈÇ‹Ç≈égópâ¬î\Ç…ÇÕÇ»ÇËÇ‹ÇπÇÒ (CMGetDefaultProfileBySpace ǻǫÇÃåƒÇ—èoǵÇâÓǵǃ)ÅBåªç›ÇÃÇΔDZÇÎÅAÅuColorSyncÅvÉRÉìÉgÉçÅ[ÉãÉpÉlÉãÇ™ÉNÉçÅ[ÉYÇ≥ÇÍǃǢÇÈǩǫǧǩÇîªífÇ∑ÇÈ ColorSync API ÇÕópà”Ç≥ÇÍǃǢNjÇπÇÒÇ™ÅADZÇÃñ⁄ìIÇ≈ Process Manager API ÇégópÇ∑ÇÈDZÇΔÇ™Ç≈Ç´Ç‹Ç∑ÅB

éQçlï∂å£


ÉyÅ[ÉWÇÃêÊì™Ç…ñflÇÈ


çXêVì˙: 1999 îN 10 åé 5 ì˙